package com.iakuil.app.common.core.domain;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

/**
 * CQRS模式命令基类
 *
 * <p>包含时间戳参数等。子类作为入参时将会进行<strong>严格校验</strong>。
 * <p>注意：删除操作一般是幂等的，请不要画蛇添足。
 *
 * @author Kai
 */
@Getter
@Setter
public abstract class BaseCmd implements Serializable {

    /**
     * 时间戳
     *
     * <p>用于判断表单是否超时，以及简单的防爬虫和重放攻击。
     */
    @Schema(description = "时间戳（秒）")
    Long ts;
}
